Refactoring for Comprehension
نویسنده
چکیده
Functional programming is well suited for equational reasoning on programs. In this paper, we are trying to use this capability for program comprehension purposes. Specifically, in a program understanding process, higher-order operators can work like abstract schemes in which we can fit formal specifications calculated from the source code. Such specifications are calculated by a transformational process which we call reverse program calculation that operates on both notations: pointwise and pointfree. Once a specification matches an abstract schema, a new refactoring phase leading to a clearer source code takes place. At the same time, an unambiguous behavioural understanding is reached because we give a mathematical description of the abstract schemes. To provide a more complete and realistic perspective of the approach, we use recursive operators that can handle side effects.
منابع مشابه
JExtract: An Eclipse Plug-in for Recommending Automated Extract Method Refactorings
Although Extract Method is a key refactoring for improving program comprehension, refactoring tools for such purpose are often underused. To address this shortcoming, we present JExtract, a recommendation system based on structural similarity that identifies Extract Method refactoring opportunities that are directly automated by IDE-based refactoring tools. Our evaluation suggests that JExtract...
متن کاملProgram Comprehension Risks and Opportunities in Extreme Programming
We investigate the relationship between reverse engineering and program comprehension on the one hand, and software process on the other. To understand this relationship, we select one particular existing software process, extreme programming (XP), and study the role played in it by program comprehension and reverse engineering. To that end, we analyze five key XP practices in depth: pair progr...
متن کاملA Study of Quality Improvements By Refactoring
Refactorings, behavior preserving transformations, are claimed to make software easier to understand and to improve software design. However, these claimed quality improvements have yet to be validated. This dissertation reports on our contributions to their validation. First, a validation of two existing reengineering patterns that use refactoring to support program comprehension is presented....
متن کاملSupporting Program Comprehension for Refactoring Operations with Annotations
Restructuring a program is a concept that aims at increasing the maintainability of a piece of code by changing its structure. The term refactoring is often used synonymously, especially when the observable behavior of a program should not change when transforming the structure of the software to a more sophisticated level, e.g. by using design patterns. Behaviour-conserving program transformat...
متن کاملA Holistic Approach for Processing of Detected Code Clones
Code cloning, i.e., the replication of code fragments in software systems, is a severe problem in industrial as well as in open source systems. In comparison to clone detection and analysis, which is a widely covered topic in research, only little work has been done regarding comprehension of clones or further processing strategies. Our current research aims at classifying code clones by adding...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007